function fig = PlotXePhaseNoise(obj, spectrumData)
    if nargin == 1
        spectrumData = obj.SystemInfo.XePhaseNoise;
    end
    
    spect129 = spectrumData.signal.getNodeData(1);
    spect131 = spectrumData.signal.getNodeData(2);
    fList129= spect129.x; psValue129 = spect129.y/pi*180;
    fList131= spect131.x; psValue131 = spect131.y/pi*180;
    enbw129 =  spectrumData.signal.getNodeENBW(1);
    enbw131 =  spectrumData.signal.getNodeENBW(2);
    
    psd129 = psValue129/sqrt(enbw129);
    psd131 = psValue131/sqrt(enbw131);

    fig = figure('Name', sprintf('Xe Phase Noise: [%s]', datestr(spectrumData.timestamp)), 'WindowStyle', 'Docked'); ax = axes('Parent', fig);
    loglog(ax, fList129, psd129, 'b.-', [fList129(2), fList129(end)], [spectrumData.phaseNoise129, spectrumData.phaseNoise129], 'b--', ...
               fList131, psd131, 'r.-', [fList131(2), fList131(end)], [spectrumData.phaseNoise131, spectrumData.phaseNoise131], 'r--');
    xlabel(ax, 'frequency (Hz)'); ylabel(ax, 'Phase Noise deg/sqrt(Hz)');
    xlim(ax, minmax(fList129(:)')); 
    title(ax, sprintf('PSD, ENBW129 = %3.2e Hz, ENBW131 = %3.2e Hz', enbw129, enbw131));
    legend(ax, {'Xe129 PSD', sprintf('%3.1e deg/sqrt(Hz)', spectrumData.phaseNoise129), 'Xe131 PSD', sprintf('%3.1e deg/sqrt(Hz)', spectrumData.phaseNoise131)}, 'Location', 'best', 'Interpreter', 'tex');
    grid on;
end
